package com.dragon.modules.yuegou.service.busd;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.modules.yuegou.entity.busd.GroupUserEntity;
import com.dragon.modules.yuegou.model.busd.GroupUser;

import javax.annotation.Nullable;

/**
 * 集团用户 服务接口
 *
 * @author pbuilder generated
 * @date 2019-03-19 08:59:40
 * @version 2.0
 */
public interface GroupUserService extends IService<GroupUserEntity> {

	/**
	 * 集团版登陆
	 * 
	 * @param username 账号
	 * @param password 密码
	 * @return 集团用户
	 */
	GroupUser login(String username, String password);

	/**
	 * 集团版登陆
	 *
	 * @param mobile 手机号
	 * @param password 密码
	 * @return 集团用户
	 */
	GroupUser loginByMobile(String mobile, String password);

	/**
	 * 根据手机号查询集团用户
	 *
	 * @param mobile 手机号
	 * @return 集团用户
	 */
	GroupUser getByMobile(String mobile);

	/**
	 * 保存集团超级管理员
	 * 
	 * @param groupId  集团ID
	 * @param username 账号
	 * @param mobile   手机号
	 * @param password 密码
	 * @return 用户ID
	 */
	String createAdmin(String groupId, String username, String mobile,String nickname, String password);

	/**
	 * 重设集团管理员密码
	 * 
	 * @param groupId 集团ID
	 * @param newPwd  新密码
	 */
	void resetAdminPassword(String groupId, String newPwd);

	/**
	 * 获取集团超级管理员
	 * 
	 * @param groupId 集团ID
	 * @return 集团用户
	 */
	@Nullable
	GroupUser getAdmin(String groupId);

	/**
	 * 创建集团用户
	 * 
	 * @param groupId  集团ID
	 * @param username 账号
	 * @param mobile   手机号
	 * @param nickname 用户名
	 * @param password 密码
	 * @return 集团用户
	 */
	GroupUser createAccount(String groupId, String username, String mobile, String nickname, String password);
	
	/**
	 * 删除集团账号
	 * @param groupId 集团ID
	 * @param userId 用户ID
	 */
	void deleteAccount(String groupId, String userId);
	
	/**
	 * 启用集团用户
	 * @param groupId 集团ID
	 * @param userId 用户ID
	 */
	void enableUser(String groupId, String userId);
	
	/**
	 * 禁用集团用户
	 * @param groupId 集团ID
	 * @param userId 用户ID
	 */
	void disableUser(String groupId, String userId);

	/**
	 * 根据OPENID 查询集团用户
	 * @param openId
	 * @param appid
	 * @return
	 */
    GroupUser getUserByWxOpenId(String openId, String appid);
}